package interfaceComUsuario;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import personagens.FichaDePersonagemDeadlands;

import acessorios.RolagemDeadlands;

public class FrameFichaDePersonagem extends JFrame
{
	/**
	 * 
	 */
	private static final long serialVersionUID = -34267457463824907L;
	private static final int DEFAULT_WIDTH = 500;
	private static final int DEFAULT_HEIGHT = 800;
	private JPanel buttonPanel;
	private JTextArea chatArea;
	private FichaDePersonagemDeadlands personagem;
	
	public FrameFichaDePersonagem()
	{
		setTitle("Ficha de Personagem");
		setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
		
		buttonPanel = new JPanel();
		personagem = new FichaDePersonagemDeadlands("John Doe", "Um cara qualquer");
		
		for(RolagemDeadlands rolagem: personagem.getAtributos())
		{
			makeBotaoDeCaracteristica(rolagem);
			rolagem.alterarDificuldade(5);
		}
		chatArea = new JTextArea();
		buttonPanel.add(chatArea);
		
		add(buttonPanel);
	}
	
	void makeBotaoDeCaracteristica(final RolagemDeadlands rolagem)
	{
		BotaoDeCaracteristica botao = new BotaoDeCaracteristica();
		botao.associarRolagem(rolagem);
		buttonPanel.add(botao);
		
		botao.addActionListener(new ActionListener()
		{	
			@Override
			public void actionPerformed(ActionEvent event)
			{
				// TODO Auto-generated method stub
				//Do the rolling here
				rolagem.rolar();
				chatArea.append(rolagem.consultarNome() + "\n");
				int[] valores = rolagem.verificarResultadosIndividuais();
				chatArea.append("dados -> " + Arrays.toString(valores) + "\n");
				int sucessos = rolagem.verificarSucessos();
				chatArea.append("sucessos -> " + Integer.toString(sucessos) + "\n");
				if(rolagem.verificarSucesso())
				{
					chatArea.append(personagem.consultarNome() + " has succeded in his\\her " + rolagem.consultarNome() + " test\n");
				}
				else
				{
					chatArea.append(personagem.consultarNome() + " tryed to " + rolagem.consultarNome() + " but has failed\n");
				}
			}
		});
	}
}

